home *** CD-ROM | disk | FTP | other *** search
-
- /*
- * FIFO.H
- *
- * PUBLIC FIFO STRUCTURES AND DEFINES
- */
-
- #ifndef LIBRARIES_FIFO_H
- #define LIBRARIES_FIFO_H
-
- #define FIFONAME "fifo.library"
-
- #define FIFOF_READ 0x00000100L // intend to read from fifo
- #define FIFOF_WRITE 0x00000200L // intend to write to fifo
- #define FIFOF_RESERVED 0xFFFF0000L // reserved for internal use
- #define FIFOF_NORMAL 0x00000400L // request blocking/sig support
- #define FIFOF_NBIO 0x00000800L // non-blocking IO
-
- #define FIFOF_KEEPIFD 0x00002000L // keep fifo alive if data pending
- #define FIFOF_EOF 0x00004000L // EOF on close
- #define FIFOF_RREQUIRED 0x00008000L // reader required to exist
-
- #define FREQ_RPEND 1
- #define FREQ_WAVAIL 2
- #define FREQ_ABORT 3
-
- typedef void *FifoHan; // returned by OpenFifo()
-
- #ifndef IN_LIBRARY
-
- FifoHan OpenFifo(char *, long, long);
- void CloseFifo(FifoHan, long);
- long ReadFifo(FifoHan, char **, long);
- long WriteFifo(FifoHan, char *, long);
- void RequestFifo(FifoHan, struct Message *, long);
- long BufSizeFifo(FifoHan);
-
- #pragma libcall FifoBase OpenFifo 1e 81003
- #pragma libcall FifoBase CloseFifo 24 1002
- #pragma libcall FifoBase ReadFifo 2a 81003
- #pragma libcall FifoBase WriteFifo 30 81003
- #pragma libcall FifoBase RequestFifo 36 81003
- #pragma libcall FifoBase BufSizeFifo 3c 1
-
- #endif
-
- #endif
-
-